﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PSE.Framework.Communication.Spb.Common
{
    public class SpbErrors
    {
        public static string GetErrorMessage(ErrorConstants errorCode)
        {
            switch (errorCode)
            {
                                case ErrorConstants.CM_OK:
                    {
                        return "OK";
                    }
                case ErrorConstants.CM_ERRO:
                    {
                        return "Erro";
                    }
                case ErrorConstants.CM_ERRO_DE_CONEXAO:
                    {
                        return "Erro de Conexão";
                    }
                case ErrorConstants.CM_ERRO_OBJETO_EM_USO:
                    {
                        return "Objeto em uso";
                    }
                case ErrorConstants.CM_ERRO_DESCONHECIDO:
                    {
                        return "Erro Desconhecido";
                    }
                case ErrorConstants.CM_ERRO_FALTA_DE_PARAMETRO:
                    {
                        return "Falta de Parâmetro";
                    }
                case ErrorConstants.CM_ERRO_MODO_PERSISTENTE:
                    {
                        return "Modo Persistente";
                    }
                case ErrorConstants.CM_ERRO_TIME_OUT_DE_RESPOSTA:
                    {
                        return "Timeout de Resposta";
                    }
                case ErrorConstants.CM_ERRO_MSG_NAO_REMOVIDA:
                    {
                        return "Mensagem não Removida";
                    }
                case ErrorConstants.CM_ERRO_TAMANHO_DE_PARAMETRO:
                    {
                        return "Tamanho de parâmetro errado";
                    }
                case ErrorConstants.CM_ERRO_TAMANHO_DA_MENSAGEM_NAO_CONFERE:
                    {
                        return "Tamanho da mensagem não confere";
                    }
                case ErrorConstants.CM_ERRO_SEM_MENSAGENS_NA_FILA:
                    {
                        return "Sem mensagens na fila";
                    }
                case ErrorConstants.CM_ERRO_USUARIO_SEM_PERMISSAO:
                    {
                        return "Usuário sem permissão";
                    }
                case ErrorConstants.CM_ERRO_LOGON_RECUSADO:
                    {
                        return "Logon recusado";
                    }
                case ErrorConstants.CM_ERRO_VERSAO_INCORRETA:
                    {
                        return "Versão Incorreta";
                    }
                case ErrorConstants.CM_ERRO_HOST_NAO_LOCALIZADO:
                    {
                        return "Host não localizado";
                    }
                case ErrorConstants.CM_ERRO_PARSER_INVALID_PARM:
                    {
                        return "Parâmetro inválido para o parser";
                    }
                case ErrorConstants.CM_ERRO_PARSER_INIT_ERR:
                    {
                        return "Erro de inicialização do parser";
                    }
                case ErrorConstants.CM_ERRO_PARSER_XML_EXCEPTION:
                    {
                        return "Exceção no parser do XML";
                    }
                case ErrorConstants.CM_ERRO_PARSER_XML_ERR:
                    {
                        return "Erro no parser do XML";
                    }
                case ErrorConstants.CM_ERRO_PARSER_OVERFLOW:
                    {
                        return "Parser Overflow";
                    }
                case ErrorConstants.CM_ERRO_PARSER_XSD_FILE_NOT_FOUND:
                    {
                        return "Arquivo XSD não encontrado";
                    }
                case ErrorConstants.CM_ERRO_TAG_CODMSG_INEXISTENTE:
                    {
                        return "Tag CODMSG inexistente";
                    }
                case ErrorConstants.CM_ERRO_TAG_NUOP_INEXISTENTE:
                    {
                        return "Tag NUOP não existente";
                    }
                case ErrorConstants.CM_ERRO_GERAR_NUOP:
                    {
                        return "Erro na geração do Nuop";
                    }
                case ErrorConstants.CM_ERRO_MSGID_INEXISTENTE:
                    {
                        return "Tag MSGID inexistente";
                    }
                case ErrorConstants.CM_ERRO_MSGID_REMOVIDO_ANTERIORMENTE:
                    {
                        return "MSGID removido anteriormente";
                    }
                case ErrorConstants.CM_ERRO_IFID_EXISTENTE:
                    {
                        return "IFID existente";
                    }
                case ErrorConstants.CM_ERRO_IFID_NAO_INFORMADO:
                    {
                        return "IFID não informado";
                    }
                case ErrorConstants.CM_ERRO_MSG_NAO_ENVIADA:
                    {
                        return "Mensagem não enviada";
                    }
                case ErrorConstants.CM_ERRO_IMPOSSIVEL_OBTER_RESPOSTA:
                    {
                        return "Impossível obter resposta";
                    }
                case ErrorConstants.CM_ERRO_MSG_NAO_OBTIDA:
                    {
                        return "Mensagem não obtida";
                    }
                case ErrorConstants.CM_ERRO_GERAR_MSGID:
                    {
                        return "Erro na geração do MSGID";
                    }
                case ErrorConstants.CM_ERRO_MSG_DUPLICADA:
                    {
                        return "Mensagem duplicada";
                    }
                case ErrorConstants.CM_ERRO_INFOTED_HORARIO_INVALIDO:
                    {
                        return "INFOTED: Horário Inválido";
                    }
                case ErrorConstants.CM_ERRO_INFOTED_USUARIO_INVALIDO:
                    {
                        return "INFOTED: Usuário Inválido";
                    }
            }
            return String.Empty;
        }

       

        public enum ErrorConstants
        {
            CM_OK = 0,
            CM_ERRO = 500,
            CM_ERRO_DE_CONEXAO = 501,
            CM_ERRO_OBJETO_EM_USO = 502,
            CM_ERRO_DESCONHECIDO = 503,
            CM_ERRO_FALTA_DE_PARAMETRO = 504,
            CM_ERRO_MODO_PERSISTENTE = 505,
            CM_ERRO_TIME_OUT_DE_RESPOSTA = 506,
            CM_ERRO_MSG_NAO_REMOVIDA = 507,
            CM_ERRO_TAMANHO_DE_PARAMETRO = 508,
            CM_ERRO_TAMANHO_DA_MENSAGEM_NAO_CONFERE = 509,
            CM_ERRO_SEM_MENSAGENS_NA_FILA = 510,
            CM_ERRO_USUARIO_SEM_PERMISSAO = 511,
            CM_ERRO_LOGON_RECUSADO = 512,
            CM_ERRO_VERSAO_INCORRETA = 513,
            CM_ERRO_HOST_NAO_LOCALIZADO = 514,
            CM_ERRO_PARSER_INVALID_PARM = 515,
            CM_ERRO_PARSER_INIT_ERR = 516,
            CM_ERRO_PARSER_XML_EXCEPTION = 517,
            CM_ERRO_PARSER_XML_ERR = 518,
            CM_ERRO_PARSER_OVERFLOW = 519,
            CM_ERRO_PARSER_XSD_FILE_NOT_FOUND = 520,
            CM_ERRO_TAG_CODMSG_INEXISTENTE = 521,
            CM_ERRO_TAG_NUOP_INEXISTENTE = 522,
            CM_ERRO_GERAR_NUOP = 523,
            CM_ERRO_MSGID_INEXISTENTE = 524,
            CM_ERRO_MSGID_REMOVIDO_ANTERIORMENTE = 525,
            CM_ERRO_IFID_EXISTENTE = 526,
            CM_ERRO_IFID_NAO_INFORMADO = 527,
            CM_ERRO_MSG_NAO_ENVIADA = 528,
            CM_ERRO_IMPOSSIVEL_OBTER_RESPOSTA = 529,
            CM_ERRO_MSG_NAO_OBTIDA = 530,
            CM_ERRO_GERAR_MSGID = 531,
            CM_ERRO_MSG_DUPLICADA = 532,
            CM_ERRO_INFOTED_HORARIO_INVALIDO = 533,
            CM_ERRO_INFOTED_USUARIO_INVALIDO = 534
        };
    }
}
